# 请在此输入您的代码
n, m = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort()  # 整数倍可以类似找零钱使用贪心算法
min_a = a[0]
for dark in b:
    if dark % min_a:
        print(-1)
        continue
    # 找值<=dark的最大硬币
    target = dark
    count = 0
    max_ptr = n - 1  # 指向最大元素的指针
    while target > 0 and max_ptr > 0:
        # 从大到小去寻找小于等于某一个元素的最大值
        if a[max_ptr] <= target:
            target -= a[max_ptr]
            count += 1
    if target == 0:
        print(count, end=' ')
    else:
        print(-1, end=' ')
